#ifndef __SENDER_FORWARD_H__
#define __SENDER_FORWARD_H__

#define MAX_RX_QUEUE_PER_LCORE 16
#define MAX_TX_QUEUE_PER_PORT 16
#define RTE_LOGTYPE_L2FWD RTE_LOGTYPE_USER1

#define MAX_PKT_BURST 128
#define BURST_TX_DRAIN_US 100 /* TX drain every ~100us */
#define MEMPOOL_CACHE_SIZE 256

/*
 * Configurable number of RX/TX ring descriptors
 */
#define RTE_TEST_RX_DESC_DEFAULT 1024
#define RTE_TEST_TX_DESC_DEFAULT 1024
#define RTE_LOGTYPE_L2FWD RTE_LOGTYPE_USER1




#define SEN_PACKET_BRUST 7
#define CREATE_SAMPLE_PACKET_LENGTH 1400
#define IPV4  0x0800
#define NEED_FORWARD_PORTID 0
#define DONT_NEED_FORWARD_IP 0x0800
#define FIX_PACKET_BYTE 1400*100


/* List of queues to be polled for a given lcore. 8< */
struct lcore_queue_conf {
	unsigned n_rx_port;
	unsigned rx_port_list[MAX_RX_QUEUE_PER_LCORE];
} __rte_cache_aligned;

 struct lcore_queue_stat {
	uint64_t first_packet_tsc;
    uint64_t cur_tsc;
    uint64_t packet_count;
    uint64_t tx_rate;
    uint64_t qlen;
} __rte_cache_aligned;
#endif